package com.mutouren.common.orm.spring;

import java.util.List;

import com.github.pagehelper.PageHelper;
import com.mutouren.common.entity.PageInfo;

public abstract class BaseServiceImpl<T> implements BaseService<T> {
	
	protected BaseDao<T> baseDao;

	@Override
	public int add(T paramT) {
		return baseDao.insert(paramT);
	}

	@Override
	public int modify(T paramT) {
		return baseDao.update(paramT);
	}

	@Override
	public int delete(Object param) {
		return baseDao.delete(param);
	}

	@Override
	public int setState(T paramT) {
		return baseDao.setState(paramT);
	}

	@Override
	public T get(Object param) {
		return baseDao.get(param);
	}

	@Override
	public List<T> select(T paramT) {
		return baseDao.select(paramT);
	}
	
	@Override
	public List<T> select(T paramT, PageInfo pageInfo) {
		PageHelper.startPage(pageInfo.getPageIndex(), pageInfo.getPageSize(), true);
		
		List<T> result = baseDao.select(paramT);
		
		com.github.pagehelper.Page<T> page = (com.github.pagehelper.Page<T>)result;		
		pageInfo.setTotal((int)page.getTotal());
		
		return result;		
	}	
		
}
